home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / nessus_detect.nasl < prev    next >
Text File  |  2005-03-31  |  3KB  |  108 lines

  1. #
  2. # This script was written by Noam Rathaus <noamr@securiteam.com>
  3. #
  4. # Modified by Georges Dagousset <georges.dagousset@alert4web.com> :
  5. #   - port 1241 (IANA) added
  6. #   - rcv test is more strict
  7. #
  8. # See the Nessus Scripts License for details
  9. #
  10.  
  11. if(description)
  12. {
  13.  script_id(10147);
  14.  script_version ("$Revision: 1.21 $");
  15.  
  16.  name["english"] = "A Nessus Daemon is running";
  17.  script_name(english:name["english"]);
  18.  
  19.  desc["english"] = "The port TCP:3001 or TCP:1241 is open, and since this is the default port
  20. for the Nessus daemon, this usually indicates a Nessus daemon is running,
  21. and open for the outside world.
  22. An attacker can use the Nessus Daemon to scan other site, or to further
  23. compromise the internal network on which nessusd is installed on.
  24. (Of course the attacker must obtain a valid username and password first, or
  25. a valid private/public key)
  26.  
  27. Solution: Block those ports from outside communication, or change the
  28. default port nessus is listening on.
  29.  
  30. Risk factor : Medium";
  31.  
  32.  script_description(english:desc["english"]);
  33.  
  34.  summary["english"] = "A Nessus Daemon is running";
  35.  script_summary(english:summary["english"]);
  36.  
  37.  script_category(ACT_GATHER_INFO);
  38.  
  39.  script_copyright(english:"This script is Copyright (C) 1999 SecuriTeam");
  40.  script_family(english:"Service detection");
  41.  script_require_ports(1241);
  42.  script_dependencies("find_service2.nasl");
  43.  exit(0);
  44. }
  45.  
  46. #
  47. # The script code starts here
  48. #
  49. include("misc_func.inc");
  50.   
  51. function probe(port)
  52. {
  53.   supported = "";
  54.   p[0] = "< NTP/1.2 >";
  55.   #p[1] = "< NTP/1.0 >";
  56.  
  57.  
  58.   #
  59.   # We don't want to be fooled by echo & the likes
  60.   #
  61.   soc = open_sock_tcp(port);
  62.   if(soc)
  63.   {
  64.     send(socket:soc, data:string("TestThis\r\n"));
  65.     r = recv_line(socket:soc, length:10);
  66.     if("TestThis" >< r)return(0);
  67.     close(soc);
  68.   }
  69.   
  70.   
  71.  
  72.   for(count=0; p[count] ; count=count+1)
  73.   {
  74.    soc = open_sock_tcp(port);
  75.    if (soc)
  76.    {
  77.     senddata = string(p[count],"\n");
  78.     send(socket:soc, data:senddata);
  79.     recvdata = recv_line(socket:soc, length:20);
  80.     if (ereg(pattern:string("^", p[count]), string:recvdata))
  81.         supported = string(supported,p[count]);
  82.     else     
  83.             count = max + 1;
  84.     close(soc);
  85.    }
  86.    else count = max + 1;
  87.   }
  88.   if (strlen(supported) > 0)
  89.   {
  90.     security_warning(port:port, data:string("A Nessus Daemon is listening on this port."));
  91.     register_service(port: port, proto: "nessus");
  92.   }
  93. }
  94.  
  95.  
  96. port = get_kb_item("Services/unknown");
  97. if(port)
  98. {
  99.  if (known_service(port: port)) exit(0); 
  100.  if(get_port_state(port))
  101.   probe(port:port);
  102. }
  103. else
  104. {
  105.  if(get_port_state(1241))
  106.   probe(port:1241);
  107. }
  108.